﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Business.Entities;
using Business.Logic;

namespace UI.Desktop
{
    public partial class EspecialidadesD : MdiFormPadre
    {
        public EspecialidadesD()
        {
            InitializeComponent();
            this.dgvEspecialidades.AutoGenerateColumns = false;
        }

        #region Eventos

        private void EspecialidadesD_Load(object sender, EventArgs e)
        {
            this.Listar();
        }

        private void btnActualizar_Click(object sender, EventArgs e)
        {
            this.Listar();
        }

        private void btnSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void tsbNuevo_Click(object sender, EventArgs e)
        {
            EspecialidadesDesktop espDesk = new EspecialidadesDesktop(EspecialidadesDesktop.ModoForm.Alta);
            espDesk.Text = "Crear nueva Especialidad";
            espDesk.ShowDialog();
            this.Listar();
        }

        private void tsbConsulta_Click(object sender, EventArgs e)
        {
            int i = ((Especialidad)this.dgvEspecialidades.SelectedRows[0].DataBoundItem).ID;
            EspecialidadesDesktop espDesk = new EspecialidadesDesktop(i, EspecialidadesDesktop.ModoForm.Consulta);
            espDesk.Text = "Consultar Especialidad";
            espDesk.ShowDialog();
            this.Listar();      
        }

        private void tsbEditar_Click(object sender, EventArgs e)
        {
            int i = ((Especialidad)this.dgvEspecialidades.SelectedRows[0].DataBoundItem).ID;
            EspecialidadesDesktop espDesk = new EspecialidadesDesktop(i, EspecialidadesDesktop.ModoForm.Modifica);
            espDesk.Text = "Modificar Especialidad";
            espDesk.ShowDialog();
            this.Listar();           
        }

        private void tsbEliminar_Click(object sender, EventArgs e)
        {
            int i = ((Especialidad)this.dgvEspecialidades.SelectedRows[0].DataBoundItem).ID;
            EspecialidadesDesktop espDesk = new EspecialidadesDesktop(i, EspecialidadesDesktop.ModoForm.Baja);
            espDesk.Text = "Eliminar Especialidad";
            espDesk.ShowDialog();
            this.Listar();         
        }

        #endregion

        #region Métodos

        private void Listar()
        {
            try
            {
                EspecialidadLogic EspLog = new EspecialidadLogic();
                this.dgvEspecialidades.DataSource = null;
                this.dgvEspecialidades.DataSource = EspLog.GetAll();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }

        #endregion
        
    }
}
